草庐IT

Swift 枚举评估

全部标签

c# - 在 switch 语句中针对枚举进行编程,这是您的方式吗?

看代码片段:这是我在针对枚举进行编码时通常会做的事情。我有一个带有InvalidOperationException的默认转义(我不使用ArgumentException或其衍生物之一,因为编码是针对私有(private)实例字段而不是传入参数)。我想知道你们这些开发人员是否也在考虑这种转义......publicenumDrivingState{Neutral,Drive,Parking,Reverse};publicclassMyHelper{privateDrivingStatedrivingState=DrivingState.Neutral;publicvoidRun(){s

c# - 结合枚举值和位标志

我有这样的场景,用户有自己的角色NormalUserCustodianFinanceCustodian和Finance都是SuperUser我如何检查角色保管人是否是super用户这是我的示例代码..usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication3{publicenumRole{NormalUser=0,Custodian=1,Finance=2,SuperUser=Custodian|Finance,All=Custodi

c# - 为什么 async 关键字在编译时会生成一个枚举器和附加结构?

如果我创建一个像下面这样的简单类:publicclassTestClass{publicTaskTestMethod(intsomeParameter){returnTask.FromResult(someParameter);}publicasyncTaskTestMethod(boolsomeParameter){awaitTask.FromResult(someParameter);}}并在NDepend中检查它,它表明TestMethod采取行动并成为asyncTask有一个为它生成的结构,带有一个枚举器、枚举器状态机和一些额外的东西。为什么编译器会生成一个名为TestClas

c# - 遗传算法中的锦标赛评估

现在,每个遗传C#库(A.Forge、遗传算法框架、GeneticSharp)似乎只评估单个Chromosome,然后使用各种选择方法之一来创建新一代.由于我的问题涉及两个AI相互对抗,因此单独评估它们的适应性有点困难。虽然游戏足够简单,可以创建一些表面障碍(AI不直接交互,但障碍会发送给其他游戏),这会让我获得一些抽象的适应性,但这并不是“真正的”交易.这些库似乎也没有提供我可以实现这种评估方法的另一个接口(interface)。是否有其他框架允许这样做,还是我需要从头开始? 最佳答案 每个遗传算法库都应该有一些方法供您定义适应度

c# - Collection<T> 是封装 IList<T> 还是枚举 IList<T>?

如果我通过Collection属性公开内部成员:publicCollectionEntries{get{returnnewCollection(this.fieldImplimentingIList);}}当这个属性被调用时会发生什么?例如,调用以下代码行时会发生什么:Ttest=instanceOfAbove.Entries[i];instanceOfAbove[i]=valueOfTypeT;很明显,每次调用此属性时都会创建一个新的引用类型,但实际发生了什么?它只是包装IList吗?在下面,它是否枚举了IList并创建一个新的Collection实例?如果在for中使用此属性,我会

c# - 契约前置条件引起的IEnumerable多重枚举

我有一个IEnumerable参数,该参数必须是非空的。如果有像下面这样的先决条件,那么集合将在它期间被枚举。但是下次我引用它时它会再次被枚举,从而导致在Resharper中出现“PossiblemultipleenumerationofIEnumerable”的警告。voidProcessOrders(IEnumerableorderIds){Contract.Requires((orderIds!=null)&&orderIds.Any());//enumeratesthecollection//BAD:collectionenumeratedagainforeach(variin

c# - 在 C# 中限制访问枚举参数的最佳实践

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion考虑这个问题String.Splitoverload,它需要一个StringSplitOptions枚举作为参数。枚举本身是公开的并且可供包括System命名空间的所有内容访问,这不是很糟糕吗?我的意思是,枚举完全特定于Split方法的选项,但它在其范围之外可用。也许有更好的方法来对此进行建模,例如将枚举放在String类本身中,然后使用String.SplitOptions访问它?我很少

c# - 外键列可以首先是 Entity Framework 6 代码中的枚举吗?

我首先将EF5DB转换为EF6代码。在旧设置中,有一些FK是字节。并且在应用程序中被映射到带有下划线字节类型的枚举。这一直很有效。首先转到代码和EF6,我发现声称枚举应该“正常工作”,而且对于常规列来说确实如此。我可以从这里开始publicbyteFavPersonality{get;set;}为此:publicPersonalityFavPersonality{get;set;}但是当涉及到也是外键的列时,我得到这个错误:System.ArgumentException:TheResultTypeofthespecifiedexpressionisnotcompatiblewitht

C#:将一个枚举包装在另一个枚举中(即镜像另一个枚举/复制它......)

这是我的问题:我有一个引用DLL的对象。我希望其他对象引用我的对象,而不必同时包含对DLL本身的引用。除了我想复制的DLL中有一个枚举外,这在大多数情况下都很好。我可以逐行写出枚举,但我想知道是否有更好的方法来做到这一点。即。假设DLL有以下枚举:publicenumdllEnum{value1,value2,value3}我可以做以下事情:publicenummyEnum{value1,value2,value3}或者更好:publicenummyEnum{value1=dllEnum.value1,value2=dllEnum.value2,value3=dllEnum.value

c# - 延迟的 NUnit 断言消息评估

我的测试代码中有这个断言Assert.That(()=>eventData.Count==0,Is.True.After(notificationPollingDelay),"Receivedunexpectedeventwithlasteventdata"+eventData.Last().Description());在一段时间后断言某些条件,失败时会产生一条消息。它无法运行,因为消息字符串是在断言开始时构造的,而不是在断言结束时构造的。因此eventData集合仍然是空的(因为它最初是空的)并且尝试获取集合中最后一项的Description失败。在NUnit中是否有解决方法或合适